Mzalendo is a civic education platform for Kenyans: explore wards, constituencies, and counties with PostGIS-backed geography, see who represents you (MCA, MP, governor) at the right level, and—when you sign in with Google—contribute short community blurbs, votes, and proposed data fixes that moderators review.
The repo is a pnpm workspace orchestrated with Vite+ (vp run for multi-package tasks). Frontend lives in apps/site (TanStack Router); API in apps/api. See VISION.md for product direction and ARCHITECTURE.md for technical design. To restore an older Turborepo layout, see docs/turborepo-revert-notes.md.
This project uses Vite+ (vp) as the unified toolchain (see AGENTS.md).
vp install
vp dev
Use vp check for format, lint, and TypeScript checks; vp test for tests.
| Path | Role |
|---|---|
apps/site |
Public civic UI; optional Google sign-in for contributions |
apps/api |
JSON API, spatial queries, moderation |
packages/* |
Shared libraries and config |
Ward boundary data is sourced from tigawanna/kenyawardsgeojson_data and relies heavily on crowdsourced contributions. Exact precision of boundaries may vary — if you spot an inaccuracy, please open an issue or submit a data-fix proposal through the platform.